/*
抽象类
  不能创建实例对象, 只有实现类才能创建实例
  可以包含未实现的抽象方法
*/
(() => {
    class Animal {
        run() {
            console.log('run()');
        }
    }
    // 定义一个实现类, 继承抽象类
    class Dog extends Animal {
        cry() {
            console.log(' Dog cry()');
        }
    }
    const dog = new Dog();
    dog.cry();
    dog.run();
    /*
    实现类: 所有方法都实现方法
    抽象类: 方法可以是实现方法和抽象方法
    接口: 所有方法都是抽象方法
    */
})();
